package rta.util
{
	public class Rut
	{
		public static function valido(rut:String):Boolean
		{
			var suma:int=0;
			var numMag:int=2;
			var resto:int=0;
			var i:int;
			
			var rutPartes:Array = rut.split("-");
			
			if(rutPartes.length == 2){
				
				// Defino el arreglo con los posibles digitos verificadores
				var digVer:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "K", "0");
				var parteNumerica:String = rutPartes[0];
				var digitoVerificador:String = rutPartes[1];
				var arrayNumeros:Array = new Array();
				
				for(i=0;i<parteNumerica.length;i++)
				{
					arrayNumeros[i]=parteNumerica.charAt(i);
				}
				
				// Calcula el digito verificador del rut
				for (i=arrayNumeros.length-1; i>=0; i--, numMag++)
				{
					suma += arrayNumeros[i]*numMag;
					if (numMag>6)
					{
						numMag = 1;
					}
				}
				
				// Esto arroja el valor que debe tener el digito verificador
				resto = 11-(suma%11);            
				
				if(digVer[resto] == digitoVerificador.toUpperCase())
				{
					return true;
				}	
			}
			
			return false;			
		}
	}
}